package com.itheima.array;
/*
数组存储学生信息 姓名 年级 学号 成绩
年级1~6随机
输出三年级学生的信息
输出所有学生成绩(由大到小)
*/
import com.itheima.domain.Students;

import java.util.Random;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Students[] stu = new Students[5];//学生人数可修改
        addStu(stu);
        printStudent(stu);
        System.out.println("三年级学生信息:");
        thirdStudent(stu);
        rankScore(stu);
        System.out.println("分数由大到小排序:");
        printStudent(stu);
    }

    //添加学生信息
    public static void addStu(Students[] stu) {
        Random r = new Random();
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < stu.length; i++) {
            int sid = i + 1;
            int grade = r.nextInt(6)+1;//年级随机生成1~6
            System.out.println("请输入第"+(i+1)+"位学生姓名:");
            String name = sc.next();
            System.out.println("请输入第"+(i+1)+"位学生成绩:");
            double score = sc.nextDouble();
            stu[i] = new Students(sid, grade, name, score);
        }
    }

    //输出三年级学生信息
    public static void thirdStudent(Students[] stu) {
        int count = 0;//计数器count记录三年级学生人数
        for (int i = 0;i<stu.length; i++) {
            if (stu[i].getGrade() == 3) {
                System.out.println(stu[i].getName()+"\t"+stu[i].getGrade()+"\t\t"+stu[i].getSid()+"\t\t"+stu[i].getScore());
                count++;
            }
        }
        if(count==0)
            System.out.println("暂无三年级学生信息!");
    }

    //所有学生成绩排序(冒泡排序法:从大到小)
    public static void  rankScore(Students[] stu){
        for (int i = 0; i < stu.length - 1; i++) {
            for(int j=0;j<stu.length-1-i;j++){
                if(stu[j].getScore()<stu[j+1].getScore()){
                    Students tempStu = stu[j];//新建学生对象tempStu作为交换信息的中间变量
                    stu[j]=stu[j+1];
                    stu[j+1]=tempStu;
                }
            }
        }
    }

    //遍历输出所有学生信息
    public static void printStudent(Students[] stu){
        System.out.println("姓名\t年级\t学号\t成绩");
        for (int i = 0; i < stu.length; i++) {
            System.out.println(stu[i].getName()+"\t"+stu[i].getGrade()+"\t\t"+stu[i].getSid()+"\t\t"+stu[i].getScore());
        }

    }

}
